// EvaluatingPane.h : interface of the CEvaluatingPane class

// Deklaracia jedneho ohodnocovacieho policka, ktore sa pouzije v dynamickej mape

#ifndef EVALUATING_PANE_H
#define EVALUATING_PANE_H


// Struktura, ktora bude sluzit pre uchovavanie pozicie ohodnocovacieho policka
struct RectPosition
{
	double left;		// specifikuje lavu poziciu obdlznika
	double top;			// specifikuje hornu poziciu obdlznika
	double right;		// specifikuje pravu poziciu obdlznika
	double bottom;		// specifikuje dolnu poziciu obdlznika
};

class CEvaluatingPane
{
	// Suradnice policka
	RectPosition rp;
	
	// Originalna hodnota policka
	double lfOriginalValue;
	// Hodnota policka
	double lfValue;

	// X a Y pozicia stredu policka
	double lfPaneCenterX; double lfPaneCenterY;

public:
	
	// Konstruktor
	CEvaluatingPane()
	{
		lfOriginalValue = lfValue = 0.0;
	}

	// Destruktor
	~CEvaluatingPane()
	{

	}

	// METODY

	// Vypocita X a Y poziciu stredu policka
	void CalculatePaneCenter();

	// Vrati lavu poziciu policka
	double GetLeftPanePosition()
	{
		return rp.left;
	}
	// Nastavi lavu poziciu policka
	void SetLeftPanePosition(double leftPos)
	{
		rp.left = leftPos;
	}

	// Vrati hornu poziciu policka
	double GetTopPanePosition()
	{
		return rp.top;
	}
	// Nastavi hornu poziciu policka
	void SetTopPanePosition(double topPos)
	{
		rp.top = topPos;
	}

	// Vrati pravu poziciu policka
	double GetRightPanePosition()
	{
		return rp.right;
	}
	// Nastavi pravu poziciu policka
	void SetRightPanePosition(double rightPos)
	{
		rp.right = rightPos;
	}

	// Vrati dolnu poziciu policka
	double GetBottomPanePosition()
	{
		return rp.bottom;
	}
	// Nastavi dolnu poziciu policka
	void SetBottomPanePosition(double bottomPos)
	{
		rp.bottom = bottomPos;
	}
	
	// ----

	// Zarata prispevok do hodnoty tohto policka
	void AddPlayerContribution(double lfContribValue)
	{
		lfValue += lfContribValue;
	}


	double GetPaneCenterX()
	{
		return lfPaneCenterX;
	}

	double GetPaneCenterY()
	{
		return lfPaneCenterY;
	}

	// Vrati vysku policka
	double GetPaneHeight()
	{
		return (GetBottomPanePosition() - GetTopPanePosition());
	}

	// Vrati sirku policka
	double GetPaneWidth()
	{
		return (GetRightPanePosition() - GetLeftPanePosition());
	}

	// Vrati hodnotu policka
	double GetPaneValue()
	{
		return lfValue;
	}

	// Vrati povodnu hodnotu policka pri inicializacii
	double GetOriginalPaneValue()
	{
		return lfOriginalValue;
	}

	void SetOriginalPaneValue(double lfVal)
	{
		lfOriginalValue = lfValue = lfVal;
	}

	// Odstrani prispevok z toho policka
	void RemovePlayerContribution(double lfContribValue)
	{
		lfValue -= lfContribValue;
	}
};


#endif // EVALUATING_PANE_H
